package com.ruoyi.psi.base.cost.service;

import com.ruoyi.psi.base.cost.domain.ProductionCostCond;
import com.ruoyi.psi.base.cost.domain.ProductionCostDomain;
import com.ruoyi.psi.base.cost.domain.ProductionCostDto;
import com.ruoyi.psi.base.cost.domain.ProductionCostListDto;

import java.util.List;

/**
 * 产品成本
 * 业务层
 */
public interface IProductionCostService {
    /**
     * 根据搜索条件查询所有产品成本信息
     * @param cond 搜索条件
     * @return
     */
    List<ProductionCostDto> selectProductionCostList(ProductionCostCond cond);

    /**
     * 按编号查询具体的产品成本信息
     * @param produceId
     * @return
     */
    ProductionCostDto selectProductionCostById(String produceId);

    /**
     * 新增产品成本记录
     * @param productionCost
     * @return
     */
    int insertProductionCost(ProductionCostDomain productionCost);

    /**
     * 修改产品成本记录
     * @param productionCost
     * @return
     */
    int updateProductionCost(ProductionCostDomain productionCost);

    /**
     * 删除产品成本记录
     * 仅修改删除标志
     * @param productionCost
     * @return
     */
    int updateProductionCostDeleteFlag(ProductionCostDomain productionCost);

    /**
     * 产品成本详细查询
     * @param cond
     * @return
     */
    List<ProductionCostListDto> selectProductionCostListList(ProductionCostCond cond);

    /**
     * 查询产品成本对应的所有报价详细
     * @return
     */
    List<ProductionCostListDto> selectProductionCostListListById(String produceId);

    /**
     * 查询产品成本对应的指定报价详细
     * @param produceId 产品编号
     * @param costItemId 成本项目编号
     * @return
     */
    ProductionCostListDto selectProductionCostListById(String produceId, Integer costItemId);
}
